package blackitheima.ThreadPool;

import java.util.concurrent.ArrayBlockingQueue;
import java.util.concurrent.Executors;
import java.util.concurrent.ThreadPoolExecutor;
import java.util.concurrent.TimeUnit;

public class MyThreadPooL {
    public static void main(String[] args) {
        //创建线程池
        ThreadPoolExecutor executor=new ThreadPoolExecutor(

                1,//核心线程

                2,//最大线程数

                0L, //空闲线程最大存活时间

                TimeUnit.MICROSECONDS, //时间单位

                new ArrayBlockingQueue<>(3), //任务队列

                Executors.defaultThreadFactory(),//创建线程工厂
                //任务的拒绝策略
                new ThreadPoolExecutor.AbortPolicy()
        );
        executor.execute(new MyRounnable("任务1"));//线程1运行
        executor.execute(new MyRounnable("任务2"));//线程1运行
        executor.execute(new MyRounnable("任务3"));//线程1运行
        executor.execute(new MyRounnable("任务4"));//线程1运行
        executor.execute(new MyRounnable("任务5"));//新建线程2运行
        executor.execute(new MyRounnable("任务6"));//没有线程可以运行了
        executor.shutdown();
    }
}
